package com.peng.leetcode.jump;

/**
 * CanJump
 * 给定一个非负整数数组，你最初位于数组的第一个位置。
 * <p>
 * 数组中的每个元素代表你在该位置可以跳跃的最大长度。
 * <p>
 * 判断你是否能够到达最后一个位置。
 *
 * @author: lupeng6
 * @create: 2020/11/28 20:33
 */
public class CanJump {

    public static void main(String[] args) {
//        int[] d = {2, 3, 1, 1, 4};
        int[] d = {3, 2, 1, 0, 4};
        System.out.println(new Solution().canJump(d));
    }

    static class Solution {
        public boolean canJump(int[] nums) {
            int rightMost = 0;
            for (int i = 0; i < nums.length; i++) {
                if (i <= rightMost) {
                    int num = nums[i];
                    rightMost = Math.max(i + num, rightMost);
                    if (rightMost >= nums.length - 1) {
                        return true;
                    }
                }
            }
            return false;
        }
    }


}
